package com.office.meeting.video.domain;

import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.office.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.office.common.annotation.Excel;

/**
 * 视频会议对象 conference_invitation
 *
 * @author 柒月
 * @date 2025-05-23
 */
public class VideoConference extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会议的id主键
     */
    private Long id;

    /**
     * 当前邀请人的的名字
     */
    @Excel(name = "邀请人")
    private String nickName;

    /**
     * 性别
     */
    @Excel(name = "用户性别")
    private Character sex;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 前端范围查询会议结束日期
     * 数据库没有改字段只是用于范围查询
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;


    /**
     * 会议开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会议开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;


    /**
     * 会议名称
     */
    @Excel(name = "会议名称")
    private String meetingName;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 邀请状态默认为 3 (0 表示已同意 1 表示已经拒绝 3 表示没有操作)
     */
    private Long state;

    /**
     * 前端开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-ss")
    private Date beginScheduleTime;

    /**
     * 前端结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-ss")
    private Date endScheduleTime;

    /**
     * 会议密码
     */
    private String password;

    @Excel(name = "会议发起时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime meetingLaunchDate;

    public Date getBeginScheduleTime() {
        return beginScheduleTime;
    }

    public void setBeginScheduleTime(Date beginScheduleTime) {
        this.beginScheduleTime = beginScheduleTime;
    }

    public Date getEndScheduleTime() {
        return endScheduleTime;
    }

    public void setEndScheduleTime(Date endScheduleTime) {
        this.endScheduleTime = endScheduleTime;
    }

    public String getMeetingName() {
        return meetingName;
    }

    public void setMeetingName(String meetingName) {
        this.meetingName = meetingName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public Character getSex() {
        return sex;
    }

    public void setSex(Character sex) {
        this.sex = sex;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Long getState() {
        return state;
    }

    public void setState(Long state) {
        this.state = state;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public LocalDateTime getMeetingLaunchDate() {
        return meetingLaunchDate;
    }

    public void setMeetingLaunchDate(LocalDateTime meetingLaunchDate) {
        this.meetingLaunchDate = meetingLaunchDate;
    }
}
